from multiprocessing import Process
import time

def dance():
    for i in range(3):
        print("在跳舞")
        time.sleep(1)

def sing():
    for i in range(3):
        print("在唱歌")
        time.sleep(1)

if __name__ == '__main__':
    p1 = Process(target=dance)
    p2 = Process(target=sing)
    # p1.run() # run只是一个普通的方法 --运行
    # p2.run()
    p1.start()
    p2.start()
    # p1.join() # join()阻塞主进程，等待子进程结束之后再执行主进程
    # p1.join(2)  # 阻塞主进程2s
    # time.sleep(2)
    p1.terminate()  # terminate()终止子进程
    # p2.terminate()
    time.sleep(2)
    # 调用terminate()之后进程不会立即死亡，他会等待几秒之后死亡
    print(f"p1的状态是{p1.is_alive()}")  # is_alive()判断是否存在的状态
    print(f"p2的状态是{p2.is_alive()}")
    print("hello")  # 主进程
    print("world")
